package com.study.app.service;

import com.study.app.domain.bo.AppSystemNotificationsBo;
import com.study.app.domain.vo.AppSystemNotificationsVo;
import com.study.common.core.domain.PageQuery;
import com.study.common.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * App系统通知Service接口
 *
 * @author magicyo
 * @date 2023-11-30
 */
public interface IAppSystemNotificationsService {

    /**
     * 查询App系统通知
     */
    AppSystemNotificationsVo queryById(Long notificationId);

    /**
     * 查询App系统通知列表
     */
    TableDataInfo<AppSystemNotificationsVo> queryPageList(AppSystemNotificationsBo bo, PageQuery pageQuery);

    TableDataInfo<AppSystemNotificationsVo> queryPageListById(Long userId, PageQuery pageQuery);

    /**
     * 查询App系统通知列表
     */
    List<AppSystemNotificationsVo> queryList(AppSystemNotificationsBo bo);

    /**
     * 新增App系统通知
     */
    Boolean insertByBo(AppSystemNotificationsBo bo);

    /**
     * 修改App系统通知
     */
    Boolean updateByBo(AppSystemNotificationsBo bo);

    /**
     * 校验并批量删除App系统通知信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    Integer getUserNoMessage(Long userId);

    Boolean updateMessageRead(Long notificationId);
    /**
     * 获取当前用户被分享的未读车辆分享弹框消息
     */
    AppSystemNotificationsVo queryVehicleSharingPopMessage();
    /**
     * 获取当前用户被分享的未读车辆分享提示消息
     */
    AppSystemNotificationsVo queryVehicleSharingTipMessage();
}
